home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / cmds / cvs / dist / man / out < prev   
Encoding:
Text File  |  1991-06-20  |  5.9 KB  |  109 lines

  1.  
  2.      o    Only a single copy of the master sources exist.  This
  3.           copy is called the source ``repository'' and, through
  4.           administrative actions, contains all the information to
  5.           extract previous software releases at any time based on
  6.           either a symbolic revision tag, or a date in the past.
  7.  
  8.      o    Individual software developers check out private copies
  9.           of the sources into their personal work space.  These
  10.           private sources can be edited at any time and checked
  11.           back into the source repository as a permanent change.
  12.           cvs takes special care to ensure that a file is up-to-
  13.           date with the current revision in the source repository
  14.           before allowing it to be added as a permanent change.
  15.  
  16.      o    There is a facility for software developers to bring
  17.           their private copies of the sources up-to-date with the
  18.           currently checked in revisions, while at the same time
  19.           preserving any modifications that have been made to
  20.           their private sources.  This allows multiple developers
  21.           to be concurrently working on the same source files
  22.           without regard for what the other guy is doing.
  23.  
  24.           Note that this is the biggest change from the way most
  25.           other revision control systems, like RCS or SCCS work,
  26.           which allow only one developer to ever be changing a
  27.           file, since the file must be checked out as ``locked''
  28.           for the exclusive use of that person.  cvs instead
  29.           never applies an RCS lock to a checked out file until
  30.           the moment before it is to be checked back in as a per-
  31.           manent change.  Concurrency checks are performed on the
  32.           soon-to-be checked in file and the file must be up-to-
  33.           date before it can be made permanent.  In this way, cvs
  34.           allows individuals the freedom to change any file at
  35.           will, and provides the tools necessary to point out, if
  36.           not resolve, any conflicts that may be generated by
  37.           allowing this extra, and necessary, freedom.
  38.  
  39.      o    cvs has direct support for tracking source releases
  40.           from third-party vendors.  The checkin(l) program is
  41.           used to initially setup the source repository.  The
  42.           branch support of RCS is used to build the vendor
  43.           release as a branch off the main (local) RCS trunk.
  44.           Once this is done, developers can check out files and
  45.           make local changes to the vendor's source distribution.
  46.           The act of checking in a local change to a vendor's
  47.           source distribution moves the RCS branch from tracking
  48.           the third-party vendor's release to the main (local)
  49.           RCS trunk so that the local version of the file is used
  50.           forever more.
  51.  
  52.           When a new version of the vendor's source distribution
  53.           (or even a minor version consisting of a small subset
  54.           of files) arrives, the checkin program is used again to
  55.           add the new vendor release to the already existing
  56.           source repository.  For files that have not been
  57.           changed locally, the new file from the vendor becomes
  58.           the current revision.  For files that have been modi-
  59.           fied locally, checkin warns that the file must be
  60.           merged manually with the new vendor release.  The join
  61.           command of cvs is a useful tool that aids this manual
  62.           merge process (see below).
  63.  
  64.      o    A vendor release or a local release can be given a sym-
  65.           bolic tag name that is stored directly in the RCS
  66.           files.  This tag can be used at any time in the future
  67.           to get an exact copy of any previous release.  With
  68.           equal ease, one can also extract an exact copy of the
  69.           source files as of any arbitrary date in the past as
  70.           well.
  71.  
  72.      o    All changes that are made to the source repository are
  73.           carefully logged in a file, notesfile, or news data-
  74.           base, which can be used to produce release notices.
  75.           cvs can be configured to send log updates through one
  76.           or more filter programs, based on a regular expression
  77.           match on the directory that is being changed.  This
  78.           allows multiple related or unrelated projects to exist
  79.           within a single cvs source repository tree, with each
  80.           different project sending their checkin reports to a
  81.           unique log device for the project.
  82.  
  83.      o    There is support for a simple, yet powerful, ``module''
  84.           database.  This database can be used to apply names to
  85.           collections of directories and files as a matter of
  86.           convenience when checking out smaller pieces of a
  87.           larger software distribution.  This allows one to
  88.           checkout the ``diff'' program, for example, without
  89.           ever requiring the knowledge that the sources to
  90.           ``diff'' actually reside in the ``bin/diff'' directory.
  91.  
  92.           The module database also has limited support for an
  93.           aliasing capability.  This is useful for programs that
  94.           share sources from completely disjoint directories.
  95.           The aliasing feature can also be used to limit a named
  96.           release to a certain collection of directories and
  97.           files, to only work with pieces of the source found in
  98.           the entire source repository.
  99.  
  100.      o    There is direct support for determining which files
  101.           have changed since a previous release, or from a par-
  102.           ticular date.  As well, cvs can create a patch(l) for-
  103.           mat output file which can be used to bring a previously
  104.           released software distribution current with the newest
  105.           release.  One can create a patch file between two
  106.           tagged revisions, between a revision and some date in
  107.           the past, between two dates, or between a date or revi-
  108.           sion and the current ``head'' revision.
  109.